import { NgModule, Type } from '@angular/core';
import { SharedModule } from '@shared';
import { ChangePasswordComponent } from '../layout/basic/change/change.component';
// dashboard pages
import { DashboardComponent } from './dashboard/dashboard.component';
import { FolderComponent } from './dashboard/folder.conponent';
import { UploadComponent } from './dashboard/upload.component';
// single pages
import { CallbackComponent } from './passport/callback.component';
import { UserLockComponent } from './passport/lock/lock.component';
// passport pages
import { UserLoginComponent } from './passport/login/login.component';
import { UserRegisterResultComponent } from './passport/register-result/register-result.component';
import { UserRegisterComponent } from './passport/register/register.component';
import { RouteRoutingModule } from './routes-routing.module';
import { ShareFolderComponent } from './share/share-folder.component';
import { ShareUploadComponent } from './share/share-upload.component';
import { ShareComponent } from './share/share.component';
import { TeamFolderComponent } from './team/team-folder.component';
import { TeamUploadComponent } from './team/team-upload.component';
import { TeamComponent } from './team/team.component';
import { FileComponent } from './types/file.component';
import { ImageComponent } from './types/image.component';
import { SoundComponent } from './types/sound.component';
import { UnknownComponent } from './types/unknown.component';
import { VideoComponent } from './types/video.component';
import { ZipComponent } from './types/zip.component';
import { GroupComponent } from './user/group.component';
import { UserEditComponent } from './user/user-edit.component';
import { UserComponent } from './user/user.component';

const COMPONENTS: Type<void>[] = [
  DashboardComponent,
  UserComponent,
  ShareComponent,
  TeamComponent,
  // passport pages
  UserLoginComponent,
  UserRegisterComponent,
  UserRegisterResultComponent,
  // single pages
  CallbackComponent,
  UserLockComponent,
  ImageComponent,
  SoundComponent,
  VideoComponent,
  FileComponent,
  ZipComponent,
  UnknownComponent
];
const COMPONENTS_NOROUNT: Type<void>[] = [ChangePasswordComponent,FolderComponent, UploadComponent, ShareFolderComponent, ShareUploadComponent, 
  TeamFolderComponent,TeamUploadComponent, GroupComponent, UserEditComponent];

@NgModule({
  imports: [SharedModule, RouteRoutingModule],
  declarations: [
    ...COMPONENTS,
    ...COMPONENTS_NOROUNT
  ],
})
export class RoutesModule {}
